package com.gitee.wsl.ext.string

import com.gitee.wsl.ext.base.size

/**
 * 转换符号处理
 * @param start  开始位置
 * @param str    待处理字符串
 * @param symbol 转换符号
 * @return 处理后的字符串
 */
fun String.convertSymbolHide(
    start: Int,
    symbol: String = "*",
): String {
    val str=this
    if (str.isNotEmpty()) {
        if (start <= 0) {
            return str
        }
        // 获取数据长度
        val length = str.length
        // 如果数据小于 start 位则直接返回
        return if (length <= start) {
            str
        } else { // 大于 start 位
            val builder = StringBuilder()
            builder.append(str.substring(0, start))
            var len = length - start
            // 进行平分
            len /= 2
            // 进行遍历保存
            for (i in 0 until len) {
                builder.append(symbol)
            }
            builder.append(str.substring(start + len, length))
            builder.toString()
        }
    }
    return ""
}

fun CharSequence.hide(startIndex: Int, endIndex:Int, repChar: Char = '*'):String{
    val range = startIndex..endIndex
    return this.toString().replaceRange(range,repChar.repeat(range.size))
}